package GUI;

import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
import javax.swing.*;
import Test.BarChart;
import javax.swing.border.Border;
import javax.swing.table.AbstractTableModel;

public class mainWin implements Runnable,ActionListener{
    
    private JFrame main;
    private JPanel principal;
    private JMenuBar menuBarra;
    private JMenu menuArchivo,menuAyuda, menuImprimir,menuGrafica;
    private JMenuItem cerrar,acerca,ayuda,imprimir,graficar;
    private JTextArea instrucciones;
    private JPanel datos,tabla;
    private JLabel inicio;
    private BarChart graficas[];
    private Resultado panelResultado;
    private Datos panelDatos;
    private JTabbedPane pestanias;
    private AvanceGrafica avance;
    private float[] val;
   
    public mainWin(){
        
        try
        {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }catch (Exception e){
                e.printStackTrace();
                    }
        init();
    
    }
    
    private void init(){
    
    main = new JFrame("Reporte de Normas Internacionales relativas al aire respirable");
    crearMenus();
    graficas= new BarChart[5];
    pestanias= new JTabbedPane();
    panelDatos= new Datos();
    panelResultado= new Resultado(panelDatos);
    main.add(pestanias);
    main.setDefaultCloseOperation(3);
    main.setSize(800,600);
    main.setLocationRelativeTo(null);
    main.setVisible(true);
    avance=AvanceGrafica.getFrame(main);
    }
    
    private void crearMenus(){
        menuBarra= new JMenuBar();
        menuArchivo=new JMenu("Archivo");
        menuAyuda= new JMenu("Ayuda");
        cerrar=new JMenuItem("Cerrar");
        ayuda= new JMenuItem("Ayuda");
        acerca= new JMenuItem("Acerca de ...");
        imprimir= new JMenuItem("Imprimir ...");
        graficar= new JMenuItem("Graficar");
         
        cerrar.addActionListener(this);
        
        graficar.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                
                try{ val=panelResultado.getValores();}catch(Exception ex){/*ex.printStackTrace();*/ return;}
                Thread tr= new Thread("DesdeGrafica"){public void run(){
               /* avance.setVisible(true);
                avance.toFront();
                avance.setLocationRelativeTo(main);*/
                graficas[0]=new BarChart(val[0],"Hielo",1,avance.getBarra());
                graficas[1]=new BarChart(15.5f,"Hielo",1,avance.getBarra());
                graficas[2]=new BarChart(15.5f,"Hielo",1,avance.getBarra());
                graficas[3]=new BarChart(15.5f,"Hielo",1,avance.getBarra());
                graficas[4]=new BarChart(15.5f,"Hielo",1,avance.getBarra());
                
                graficas[0].execute();
                graficas[1].execute();}
                };
                tr.start();
                System.out.println(tr.getName());
                /*graficas[2].execute();
                graficas[3].execute();
                */
                try{
                    pestanias.addTab("Agua", graficas[0].get());
                    pestanias.addTab("Agua  2", graficas[1].get());
                    pestanias.revalidate();
                }
                catch(Exception ek){}finally{
                   ;
                }
            }
        });
        
        acerca.addActionListener(this);
        
        ayuda.addActionListener(this);
      
        menuArchivo.add(graficar);
        menuArchivo.add(imprimir);
        menuArchivo.add(cerrar);
        menuAyuda.add(ayuda);
        menuAyuda.add(acerca);
        menuBarra.add(menuArchivo);
        menuBarra.add(menuAyuda);
        main.setJMenuBar(menuBarra);
    }
    
    public void run(){
        pestanias.addTab("Datos/Captura", panelDatos);  
        pestanias.addTab("Resultado", panelResultado.getPanel());
        main.update(this.getGrafico());
    }
    
    public Graphics getGrafico(){
        return main.getGraphics();
    }
    
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==cerrar){
             System.exit(0);
        }
        
        if(e.getSource()==graficar){
            
        }
        
        if(e.getSource()==acerca){
            JOptionPane.showMessageDialog(null, "Algo de la descipcion de la aplicacion", "Acerca de..",JOptionPane.INFORMATION_MESSAGE);
        }
        
        if(e.getSource()==ayuda){
            JOptionPane.showMessageDialog(null, "Ingresa los datos necesarios"
                        + " para graficar","Ayuda",JOptionPane.PLAIN_MESSAGE);
        }
    }
    
}
    
